function co(generatorFunction){//接收一个generator函数
    return new Promise((resolve,reject)=>{
        const g=generatorFunction()//得到迭代器
        function next(value){
            const {value:result,done}=g.next(value)
            if(done){//表示迭代完成
                resolve(result)
            }else{
                Promise.resolve(result).then(next).catch(err=>{
                    g.throw(err)
                })//递归
            }
        }
        next()
    })
}